package factories;

import dataContracts.*;
import models.FileInfo;
import models.statistics.*;

public interface IStatisticsFactory {
    LZ77Statistics create(LZ77CompressingStatistics statistics, FileInfo fileInfo);

    LZMAStatistics create(LZCompressingStatistics statistics, FileInfo fileInfo);

    LZWStatistics create(LZWCompressingStatistics statistics, FileInfo fileInfo);

    SLPClassicStatistics createSLPClassic(AvlSLPBuildingStatistics statistics, FileInfo fileInfo);

    SLPOptimalStatistics createSLPOptimal(AvlSLPBuildingStatistics statistics, FileInfo fileInfo);

    SLPCartesianStatistics create(CartesianSLPBuildingStatistics statistics, FileInfo fileInfo);
}
